package com.xbongbong.pro.team;

import com.alibaba.fastjson.JSONObject;
import com.xbongbong.paas.toolbox.wrap.UserVO;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.List;
import java.util.Set;

/**
 * 团队校验 DTO
 * @author 魏荣杰
 *
 */
@Getter
@Setter
@ToString
public class TeamVerifyDTO {

    /**
     * 是否从tab页操作 true:代表是  false:代表否
     */
    private Boolean fromDetail;

    /**
     * 公司id
     */
    private String corpid;

    /**
     * 数据id
     */
    private List<Long> dataId;

    /**
     * 表单id
     */
    private Long formId;

    /**
     * saas标记
     */
    private Integer saasMark;

    /**
     * 主业务类型
     */
    private Integer businessType;

    /**
     * 子业务类型
     */
    private Integer subBusinessType;

    /**
     * 经销商标记
     */
    private Integer distributorMark;

    /**
     * 需要判权的用户id
     */
    private String userId;

    /**
     * 主数据创建人userid
     */
    private String creatorId;

    /**
     * 当前操作人
     */
    private UserVO loginUser;

    /**
     * 要添加的负责人
     */
    private Set<String> newAddMainUserList;

    /**
     * 要删除的负责人
     */
    private Set<String> newDelMainUserList;
    /**
     * 要添加的协同人
     */
    private Set<String> newAddCoUserList;

    /**
     *要删除的协同人
     */
    private Set<String> newDelCoUserList;

    /**
     * 是否来自继承，false不是
     */
    private Boolean isInheritance = false;

    /**
     * 团队名称（用于隔离模式下团队新建场景）
     */
    private String teamName;

    /**
     * 是否是新建，true新建，flase编辑
     */
    private Boolean isNew = false;

    /**
     * 团队负责人用户ID
     */
    private String teamUserId;

    /**
     * 需要被替换的负责人（移交功能使用）
     */
    private String originUserId;

    /**
     * 替换的负责人
     */
    private String changeUserId;

    /**
     * 操作标识
     * @see com.xbongbong.saas.enums.UserTeamOperateTagEnum
     */
    private Integer operateTag;

    /**
     * 批量标识
     * 1：批量业务  0：非批量业务
     */
    private Integer batchTag;

    /**
     * 来自退回公海池操作，true来自公海池，false非公海池操作
     */
    private Boolean fromBackPublic = false;

    /**
     * 代表paas表单负责人来源，true代表来源负责人字段，false代表来源创建人字段
     */
    private Boolean paasOwnUserFromOwnTag = true;

    /**
     * 平台 web：pc浏览器；dingtalk：钉钉；all：全部
     */
    private String platform;

    /**
     * 是否来自审批
     */
    private Boolean fromApproval = false;

    /**
     * 是否来自导入覆盖
     */
    private Boolean fromCover = false;

    /**
     * 主数据data
     */
    private JSONObject data;
    /**
     * 是否来自查重界面
     */
    private Boolean fromCheckRepeatForm = false;

}
